package edu.bw.vo;


import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Product {
    /*商品编号*/
    private int id;

    /*商品名称*/
    /**
     * @JsonProperty("name"):
     *   1.将前端提交的name参数的值绑定到pname上
     *   2.把Product对象转换成Json的时候,pname会被替换为name
     * @JsonAlias("name")
     *   也可以将前端提交的name参数绑定到pname上,但是将来将Product对象
     *   转换成Json数据的时候,不会改变属性名
     */
//    @JsonProperty("name")
    @JsonAlias("name")
    private String pname;

    /*商品价格*/
    private Double price;

    /*商品产地*/
//    @JsonIgnore   //加该注解后在将来转化为Json时会被忽略掉
//    @JsonInclude(JsonInclude.Include.NON_NULL) //加上此注解该属性为空不转换，非空才转换
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private City city;


    public Product(int id, String pname, Double price) {
        this.id = id;
        this.pname = pname;
        this.price = price;
    }
}
